package com.example.importDemo.demo03;

import org.springframework.context.annotation.ImportSelector;
import org.springframework.core.type.AnnotationMetadata;

import java.util.function.Predicate;


public class MyImportSelector03 implements ImportSelector {

    /**
     * @param importingClassMetadata
     * @return
     * @description: 返回一个包含了类全限定名的数组, 这些类会注入到Spring容器当中
     */
    @Override
    public String[] selectImports(AnnotationMetadata importingClassMetadata) {
        return new String[]{"com.example.importDemo.entity.NorMal"};
    }

    /**
     * @return
     * @description: 返回一个谓词接口，该方法制定了一个对类全限定名的排除规则来过滤一些候选的导入类。
     * 默认不排除过滤。
     * 该接口可以不实现。
     */
    @Override
    public Predicate<String> getExclusionFilter() {
        Predicate<String> predicate = new Predicate<String>() {
            @Override
            public boolean test(String s) {
                if (s.matches("com.example.importDemo.entity.NorMal")) {
                    return true;
                }
                return false;
            }
        };
        return predicate;
    }
}

